package com.upbos.upm.cfg;

import com.upbos.core.ret.RetData;
import com.upbos.data.core.Pagination;
import com.upbos.upm.entity.Cfg;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;

import static com.upbos.core.ret.RetData.success;

/**
 * <b>Application name：</b> CfgController.java <br>
 * <b>Application describing: 参数配置</b> <br>
 * <b>Copyright：</b> Copyright &copy; 2015-2020 yideb.com 版权所有。<br>
 * <b>Company：</b> yideb.com <br>
 * <b>Date：</b> 2019年05月11日 17:09 <br>
 * <b>author：</b> <a href="mailto:wangjz@miyzh.com"> Jason </a>
 * <b>version：</b>V5.0.0
 */
@RestController
@RequestMapping("upm")
public class CfgController {

    /**
     * 数据字典服务类
     */
    @Resource
    private CfgService cfgService;

    /**
     * 查询系统参数列表
     *
     * @param pageNo     当前页
     * @param pageSize   每页条数
     * @param categoryId 所属分类id
     * @param name       查询关键词，可以是参数名称或参数键
     * @return
     */
    @PostMapping("cfg/listCfg")
    public RetData<Pagination> listCfg(Integer pageNo, Integer pageSize, Long categoryId, String name) {
        Pagination p = cfgService.listCfg(pageNo, pageSize, categoryId, name);
        return success(p);
    }

    /**
     * 保存字典
     *
     * @param cfg 系统参数
     */
    @PostMapping("cfg/saveCfg")
    public RetData saveDict(Cfg cfg) {
        return cfgService.saveCfg(cfg);
    }

    /**
     * 删除字典
     *
     * @param cfg
     */
    @PostMapping("cfg/deleteCfg")
    public void deleteCfg(Cfg cfg) {
        cfgService.deleteCfg(cfg);
    }

    /**
     * 获取参数对象
     *
     * @param key 对象标识
     * @return 参数对象
     */
    @PostMapping("public/getCfg")
    public RetData getCfg(String key) {
        return success(cfgService.getCfg(key));
    }
}